home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group00b.txt
/
000113_icon-group-sender_Thu Oct 26 12:48:13 2000.msg
< prev
next >
Wrap
Internet Message Format
|
2001-01-03
|
3KB
Return-Path: <icon-group-sender>
Received: (from root@localhost)
by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id e9QJlX701049
for icon-group-addresses; Thu, 26 Oct 2000 12:47:33 -0700 (MST)
Message-Id: <200010261947.e9QJlX701049@baskerville.CS.Arizona.EDU>
Date: Thu, 26 Oct 2000 09:00:05 -0700
From: Steve Wampler <swampler@noao.edu>
X-Accept-Language: en
To: Bob Ardler <ardler@argonet.co.uk>
CC: icon-group@cs.arizona.edu
Subject: Re: Yet another Newbie question....
Errors-To: icon-group-errors@cs.arizona.edu
Status: RO
Content-Length: 2754
Bob Ardler wrote:
>
> Shamin is right in every respect; yet, as a permanent beginner I fell
> to the earth twitching and frothing at that "natural" line. Neither
> Griswold & Griswold nor Christopher (both excellent and friendly)
> always help, say, a student coming from a conventional language who
> wants to write a conventional 'if' statement and expects to find a
> simple analogue for the predicates s/he's used to.
Yes, but...
This reminds of the (computer nerd) semi-joke "I can write FORTRAN in
any language". Advanced languages like Icon (and Smalltalk and Prolog
and ...) are not "conventional". Instead, they provide ways to approach
problem solutions by thinking differently - which only works if you do
think "differently". By forcing these languages to match a conventional
model you are losing most of the advantages that the language offers.
In that case, why bother with learning the language?
Many (these days, perhaps most) students are seeing Icon as part of
a "Programming Languages" course. The primary purpose of such a course
is not to learn the different ways semicolons are treated or the
different symbols used to denote assignment. The main reason for
looking at different languages is to understand how a language can
shape how you approach solving a problem. Some languages actually
make it easy to think about problems more "naturally" (note that this
isn't the same a "conventionally" and may, in fact, vary with the
problem domain).
For grins sometime, ask an algebra class how to express the concept
that "X must be between 0 and 15, inclusive". Then ask a group of
students at the end of a course on C (or Java, or any of the conventional
languages). You could also ask a group of set theorists for another
way to express the same concept.
If you ask the same question of a group of students who have just
learned Icon, it would be a good thing if they did not give the
same answer as the C students. [It would be a *great* thing if they
were then able to explain *why* Icon lets you express it the same
way you're likely to see it written in "Math" and why C, Java, etc.
*don't* let you express it that way.]
> G&G (The Icon Programming Language, see www.peer-to-peer.com) does
> point out that member(X,x) requires X to be a set or table, and a
> cset isn't a set. Both books also list the operations on csets (union
> ++, intersection **, difference -- and complement ~), but I don't
> know where or whether they explain that you have to make your own
> cset analogue for member() using any() or not-empty intersection or
> whatever.
This is very true. In fact, I'd like to see member(), etc, also work
with csets.
--
Steve Wampler- SOLIS Project, National Solar Observatory
swampler@noao.edu